#ifndef XMLSERIALIZER_H
#define XMLSERIALIZER_H



#include "serializer_global.h"
#include "AbstractSerializer.h"



#include <QDomElement>
#include <QDomDocument>



class SERIALIZERSHARED_EXPORT XmlSerializer : public AbstractSerializer
{
    Q_OBJECT

public:
    explicit XmlSerializer(QObject *parent = 0);

    virtual void serialize(AbstractItem *source, QIODevice* output);
    virtual AbstractItem* deserialize(QIODevice* input);


protected:

    virtual QDomElement toXmlElem(AbstractItem* source, QDomDocument doc);
    virtual AbstractItem* fromXmlElem(QDomElement elem, AbstractItem* parent = 0);


};

#endif // XMLSERIALIZER_H
